﻿Public Class frmMapa3
    Private _pictures As New List(Of PictureBox)



    Private WithEvents UnMapa As clMapa
    Private UnHeroe As clHeroe
    Private Sub frmMapaDePrueba_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        'UnMapa.aparecer()
        If e.KeyCode = Keys.A OrElse e.KeyCode = Keys.S OrElse e.KeyCode = Keys.D OrElse e.KeyCode = Keys.W Then 'Lo separo para que la pregunta de abajo no haga la misma pregunta. -es para que le cueste menos, no más.
            If e.KeyCode = Keys.A Then MiHeroe.ControlDelHeroe.Moverme(clControlBasico.Donde.Izquierda, UnMapa)
            If e.KeyCode = Keys.S Then MiHeroe.ControlDelHeroe.Moverme(clControlBasico.Donde.Abajo, UnMapa)
            If e.KeyCode = Keys.D Then MiHeroe.ControlDelHeroe.Moverme(clControlBasico.Donde.Derecha, UnMapa)
            If e.KeyCode = Keys.W Then MiHeroe.ControlDelHeroe.Moverme(clControlBasico.Donde.Arriba, UnMapa)
            Escalera.Activado = clControlBasico.BuscarQue(MiHeroe.ControlDelHeroe, Escalera, UnMapa) = clControlBasico.Donde.Posicion
        End If
        'Esta verdad puede ser falsa o verdade

        If e.KeyCode = Keys.Space Then
            BarraEspaciadora()
        End If
    End Sub
    Private Sub BarraEspaciadora()
        For Each x As clCasillaPuerta In puertas
            If MiHeroe.ControlDelHeroe.EncontrarQue(x, UnMapa) Then
                x.AbrirOCerrarPuertaSinLlave()
                Exit For
            End If
        Next
    End Sub
    Private puertas As List(Of clCasillaPuerta)
    Private Escalera As clCasillaEscaleras 'Entiendo que esta es la primera escalera y solo puede subir, por defecto sube.
    'Public Structure Coordenadas
    '    Dim x As Integer
    '    Dim y As Integer
    '    Public Sub New(ByVal mix As Integer, ByVal miy As Integer)
    '        x = mix
    '        y = miy
    '    End Sub
    'End Structure
    Public puerta As clCasillaPuerta

    Private Sub frmMapaDePrueba_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        UnMapa = New clMapa(10, 10)
        Escalera = New clCasillaEscaleras(p8)
        UnMapa.AñadirCasilla(New clcasillaAgua(P1), 1, 1)
        UnMapa.AñadirCasilla(New clcasillaAgua(p2), 1, 2)
        UnMapa.AñadirCasilla(New clcasillaAgua(p3), 1, 3)
        UnMapa.AñadirCasilla(New clcasillaAgua(p4), 1, 4)
        UnMapa.AñadirCasilla(New clcasillaAgua(p5), 1, 5)
        UnMapa.AñadirCasilla(New clCasillaPared(p6), 1, 8)
        UnMapa.AñadirCasilla(New clCasillaPared(p7), 0, 8)
        UnMapa.AñadirCasilla(New clCasillaEscaleras(p8), 0, 9)
        UnMapa.AñadirCasilla(New clcasillaAgua(p9), 2, 1)
        UnMapa.AñadirCasilla(New clCasillaCofre(p10), 2, 4)
        UnMapa.AñadirCasilla(New clcasillaAgua(p11), 2, 5)
        UnMapa.AñadirCasilla(New clcasillaAgua(p12), 2, 6)
        UnMapa.AñadirCasilla(New clcasillaAgua(p13), 2, 9)
        UnMapa.AñadirCasilla(New clcasillaAgua(p14), 3, 1)
        UnMapa.AñadirCasilla(New clcasillaAgua(p15), 3, 7)
        UnMapa.AñadirCasilla(New clcasillaAgua(p16), 3, 8)
        UnMapa.AñadirCasilla(New clcasillaAgua(p17), 4, 1)
        UnMapa.AñadirCasilla(New clcasillaAgua(p18), 4, 8)
        UnMapa.AñadirCasilla(New clcasillaAgua(p19), 5, 1)
        UnMapa.AñadirCasilla(New clcasillaAgua(p20), 5, 8)
        UnMapa.AñadirCasilla(New clcasillaAgua(p21), 6, 1)
        UnMapa.AñadirCasilla(New clcasillaAgua(p22), 6, 4)
        UnMapa.AñadirCasilla(New clcasillaAgua(p23), 7, 1)
        UnMapa.AñadirCasilla(New clCasillaCofre(p24), 7, 2)
        UnMapa.AñadirCasilla(New clcasillaAgua(p25), 7, 4)
        UnMapa.AñadirCasilla(New clcasillaAgua(p26), 8, 1)
        UnMapa.AñadirCasilla(New clcasillaAgua(p27), 8, 2)
        UnMapa.AñadirCasilla(New clcasillaAgua(p28), 8, 3)
        UnMapa.AñadirCasilla(New clcasillaAgua(p29), 8, 4)
        UnMapa.AñadirCasilla(New clcasillaAgua(p30), 9, 8)
        UnMapa.AñadirCasilla(New clCasillaCofre(p31), 9, 9)
        UnMapa.AñadirCasilla(New clCasillaCofre(p32), 8, 9)
        UnMapa.AñadirCasilla(New clcasillaAgua(p33), 8, 8)
        UnMapa.AñadirCasilla(New clcasillaAgua(p34), 7, 8)
        UnMapa.AñadirCasilla(New clcasillaAgua(p35), 6, 8)
        UnMapa.AñadirCasilla(New clCasillaInterruptor(p36), 2, 3)




        'UnMapa.AñadirCasilla(puerta, 5, 5)
        UnMapa.AgregarMapa(Me)
        '_posiciones(0).x = 5
        '_posiciones(0).y = 5
        UnHeroe.ControlDelHeroe.CambiarControl(heroebtn)
        UnHeroe.ControlDelHeroe.Teletransportar(1, 6, UnMapa)
    End Sub
    Public Sub combatiendo()
        'Me.monstertimer.Stop()
    End Sub

    Private Sub UnMapa_Aparicion_Monstruos(ByVal sender As clMapa, ByVal e As System.EventArgs) Handles UnMapa.Aparicion_Monstruos
        Dim aleatorio As New Random
        Dim aparicion As Integer
        aparicion = aleatorio.Next(10)
        If aparicion = 4 Or 6 Or 8 Then
            aparicion = aleatorio.Next(lista_monstruos_piso1.Count)
            Dim combate As New frmCombate
            combate.ElMonstruo = lista_monstruos_piso1(aparicion)
            If TryCast(lista_monstruos_piso1(aparicion), clMonstruo).Nombre = "H.A.S.I.R, rey de las ratas" Then Exit Sub
            combate.lblNombreheroe.Text = MiHeroe.Nombre
            combate.lblNombreMalo.Text = lista_monstruos_piso1(aparicion).Nombre
            combate.Show()
            combatiendo()
        End If
    End Sub
    Private Sub Escalera_CambiarPiso(ByVal Yo As clCasillaEscaleras, ByVal e As EventArgs) 'Handles Escalera.CambiarPiso
        If Yo.Sube Then

            'TODO ¿A qué piso va?
            MessageBox.Show("Sube")
        Else
            'TODO ¿A qué piso iría? -aquí sobra pero así lo veís.
        End If
    End Sub
End Class